within grub, if you're using a different /boot folder eg. /but instead of /boot
then you need to fix grub2-mkconfig otherwise it will lead to unbootable system
because grub2-mkconfig will detect your root / as the grub root, instead of your /but (previously it would correctly detect /boot as the grub root)

the shown error is:
cleared screen
"
Loading Linux x86_64-3.17.7-gentoo ...
error: file `/kernel-genkernel-x86_64-3.17.7-gentoo' not found.
Loading initial ramdisk ...
error: you need to load the kernel first.

Press any key to continue...
"
(reverts back to menu after 5 sec, even though -1 is the GRUB_TIMEOUT)



* to correctly detect root(boot device /dev/sda2 that is, not system root / /dev/sda3)
\ sed -re 's|(\$\{grub_probe\} --target=device )(/boot)(`")|\1/but\3|' -i /usr/sbin/grub2-mkconfig

----- don't use this(needs fixing):
or make a more generic change, assuming that if grub.cfg is specified via -o then the location of it is where /boot partition is: 
sed -re 's|(\$\{grub_probe\} --target=device )(/boot)(`")|\1\$\{grub_cfg:-/boot\}\3|' -i /usr/sbin/grub2-mkconfig
this way you don't have to keep track of /but dir, and can be any name
and if -o is not specified then ofc fall back to /boot
FIXME: actually this won't work when grub.cfg or grub subdir doesn't exist! so to fix, use dirname until empty(or == "/" ) and try running ${grub_probe} until exist status is 0 and result is non-empty(eg. /dev/sda2)
but until then use the /but  patch 
----

\ without this you will get this error:
\ and to fix it (temporarily) you have to edit the kernel and initrd lines and prepend the boot device location as: (hd0,gpt2) for example. Seen when you get into cmdline and do `ls` then `ls (hd0,gpt2)/` to see where your kernel and initrd are located in order to find the correct values for (hd0,gpt2) from the listed ones with `ls`.
\ this is just temporary fix to let you boot in, and overrides the wrong search lines which point to your rootfs /  eg. /dev/sda3  instead to your /boot or /dev/sda2 which they should point to, including the set root= line! the UUID is also wrongly pointing to / instead of /boot so it's not enough to just change the (hd0,gpt3) into (hd0,gpt2) where you see them. But just prepending the right, (hd0,gpt2) that is, partition to kernel and initrd lines will get you into booting the system and you now only have to fix grub2-mkconfig with the above sed command before rerunning it again to fix it


here's a diff between broken system and correct system
(to fix broken system, just prepend (hd0,gpt2) before the / on the kernel and initrd lines and you're able to boot)

diff -up grub.cfg.incorrect grub.cfg.correct 
--- grub.cfg.incorrect  2015-01-10 19:20:18.579477275 +0100
+++ grub.cfg.correct  2015-01-10 19:26:00.517868871 +0100
@@ -76,12 +76,12 @@ menuentry 'Gentoo GNU/Linux' --class gen
  fi
  insmod gzio
  insmod part_gpt
- insmod btrfs
- set root='hd0,gpt3'
+ insmod ext2
+ set root='hd0,gpt2'
  if [ x$feature_platform_search_hint = xy ]; then
-   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  b59b7c7d-008d-415b-92c1-07ec13b23421
+   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  010ee693-6294-423f-97e1-6a59ca4800ab
  else
-   search --no-floppy --fs-uuid --set=root b59b7c7d-008d-415b-92c1-07ec13b23421
+   search --no-floppy --fs-uuid --set=root 010ee693-6294-423f-97e1-6a59ca4800ab
  fi
  echo  'Loading Linux x86_64-3.17.7-gentoo ...'
  linux /kernel-genkernel-x86_64-3.17.7-gentoo root=UUID=b59b7c7d-008d-415b-92c1-07ec13b23421 ro ipv6.disable=1 pnp.debug=1 loglevel=9 log_buf_len=10M printk.always_kmsg_dump=y printk.time=y memory_corruption_check=1 nohz=on rcu_nocbs=1-3 pcie_aspm=force fbcon=scrollback:4096k fbcon=font:ProFont6x11 radeon.audio=0 radeon.lockup_timeout=0 radeon.test=0 radeon.agpmode=-1 radeon.benchmark=0 radeon.tv=0 radeon.hard_reset=1 radeon.aspm=1 radeon.msi=1 radeon.pcie_gen2=-1 radeon.no_wb=1 radeon.dynclks=1 radeon.r4xx_atom=0 radeonfb radeon.fastfb=1 apic=debug earlyprintk=vga radeon.modeset=1 radeon.dpm=1 radeon.runpm=1 rd.debug rd.udev.debug rd.memdebug=3 net.ifnames=0 
@@ -97,12 +97,12 @@ submenu 'Advanced options for Gentoo GNU
    fi
    insmod gzio
    insmod part_gpt
-   insmod btrfs
-   set root='hd0,gpt3'
+   insmod ext2
+   set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
-     search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  b59b7c7d-008d-415b-92c1-07ec13b23421
+     search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  010ee693-6294-423f-97e1-6a59ca4800ab
    else
-     search --no-floppy --fs-uuid --set=root b59b7c7d-008d-415b-92c1-07ec13b23421
+     search --no-floppy --fs-uuid --set=root 010ee693-6294-423f-97e1-6a59ca4800ab
    fi
    echo  'Loading Linux x86_64-3.17.7-gentoo ...'
    linux /kernel-genkernel-x86_64-3.17.7-gentoo root=UUID=b59b7c7d-008d-415b-92c1-07ec13b23421 ro ipv6.disable=1 pnp.debug=1 loglevel=9 log_buf_len=10M printk.always_kmsg_dump=y printk.time=y memory_corruption_check=1 nohz=on rcu_nocbs=1-3 pcie_aspm=force fbcon=scrollback:4096k fbcon=font:ProFont6x11 radeon.audio=0 radeon.lockup_timeout=0 radeon.test=0 radeon.agpmode=-1 radeon.benchmark=0 radeon.tv=0 radeon.hard_reset=1 radeon.aspm=1 radeon.msi=1 radeon.pcie_gen2=-1 radeon.no_wb=1 radeon.dynclks=1 radeon.r4xx_atom=0 radeonfb radeon.fastfb=1 apic=debug earlyprintk=vga radeon.modeset=1 radeon.dpm=1 radeon.runpm=1 rd.debug rd.udev.debug rd.memdebug=3 net.ifnames=0 
@@ -116,12 +116,12 @@ submenu 'Advanced options for Gentoo GNU
    fi
    insmod gzio
    insmod part_gpt
-   insmod btrfs
-   set root='hd0,gpt3'
+   insmod ext2
+   set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
-     search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  b59b7c7d-008d-415b-92c1-07ec13b23421
+     search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  010ee693-6294-423f-97e1-6a59ca4800ab
    else
-     search --no-floppy --fs-uuid --set=root b59b7c7d-008d-415b-92c1-07ec13b23421
+     search --no-floppy --fs-uuid --set=root 010ee693-6294-423f-97e1-6a59ca4800ab
    fi
    echo  'Loading Linux x86_64-3.17.7-gentoo ...'
    linux /kernel-genkernel-x86_64-3.17.7-gentoo root=UUID=b59b7c7d-008d-415b-92c1-07ec13b23421 ro single ipv6.disable=1 pnp.debug=1 loglevel=9 log_buf_len=10M printk.always_kmsg_dump=y printk.time=y memory_corruption_check=1 nohz=on rcu_nocbs=1-3 pcie_aspm=force fbcon=scrollback:4096k fbcon=font:ProFont6x11 radeon.audio=0 radeon.lockup_timeout=0 radeon.test=0 radeon.agpmode=-1 radeon.benchmark=0 radeon.tv=0 radeon.hard_reset=1 radeon.aspm=1 radeon.msi=1 radeon.pcie_gen2=-1 radeon.no_wb=1 radeon.dynclks=1 radeon.r4xx_atom=0 radeonfb radeon.fastfb=1 apic=debug earlyprintk=vga radeon.modeset=1 radeon.dpm=1 radeon.runpm=1 rd.debug rd.udev.debug rd.memdebug=3 net.ifnames=0


